   <?php

/**
 * xml_servicio_planes actions.
 *
 * @package    practil
 * @subpackage xml_servicio_planes
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class planesActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */

  public function executeIndex(sfWebRequest $request)
  {

    /*
    * se verifica si el usuario esta en sesion del SAML
    */


    $simpleSAMLAuth = new SimpleSAML_Auth_Simple('default-sp');
    $recurso = new  myLib();
    $lib = new PlatformValidator();
   if ($simpleSAMLAuth->isAuthenticated()){ // si esta autenticasdo
    if($this->getUser()->getAttribute('des_plataforma_twocheckout') != null){


    //Asocio en la base de datos de practil
      $email = $this->getUser()->getAttribute('email_usuario_twocheckout');
      $plataforma_id = $this->getUser()->getAttribute('id_plataforma_twocheckout');
      $servicio_practil = 'http://practil.com/json_servicio_usuario/asociar_plataforma?';
      $token= "esferadigital";
      $token = md5($token);
      $servicio_practil = $servicio_practil.'email='.$email.'&token='.$token.'&plataforma='.$plataforma_id;

      $respuesta = file_get_contents($servicio_practil);
      $result = $recurso->xml2array($respuesta);

      $json = json_decode($result);
       if($json->{'success'}){

         /*CONSUMO DE WEBSERVICE DE CESAR*/

          /*FIN WEBSERVICE CESAR*/
           $plataforma = $this->getUser()->getAttribute('des_plataforma_twocheckout');

          /*ELIMINO SESIONES */

           $this->getUser()->getAttributeHolder()->remove('id_plataforma_twocheckout');
           $this->getUser()->getAttributeHolder()->remove('des_plataforma_twocheckout');
           $this->getUser()->getAttributeHolder()->remove('id_usuario_twocheckout');
           $this->getUser()->getAttributeHolder()->remove('email_usuario_twocheckout');


       }else{
         $this->mensaje = $json->{'message'};
         return "Error";
       }





    }else{
      $plataforma = $request->getParameter('plataforma');
    }

    /*establesco el layaout y el id de cada plataforma*/

          $respuesta = $lib->PlatformExists($plataforma,'name');
          if($respuesta['success']){
            $plataforma_layout = $respuesta['object']->getDescripcion();
            $plataforma_id = $respuesta['object']->getId();

          /*obtengo el id del usuario autenticado*/

          $attributes  = $simpleSAMLAuth->getAttributes();
    if($recurso->executeExiste_usuario_plataforma($attributes['id'][0], $plataforma_id)){ // no esta asociado a la plataforma, tampoco esta registrado en la plataforma

       // invoco al webservice de cesar
        try{


        // lo mando a terminos y condiciones

        //creo una sesion para 2checkout
        $this->getUser()->setAttribute('id_plataforma_twocheckout',$respuesta['object']->getId());
        $this->getUser()->setAttribute('des_plataforma_twocheckout',$respuesta['object']->getDescripcion());
        $this->getUser()->setAttribute('id_usuario_twocheckout',$attributes['id'][0]);
        $this->getUser()->setAtrribute('email_usuario_twocheckout',$attributes['email'][0] );
        return "Seleccionar";

    }catch(Exception $e){
      $this->list_detalle = null;
    }


     }else{ // se encuentra registrado y asociado en la plataforma

       // evaluamos el codigo de la plataforma enviada

     try {

        $this->nombre_plataforma = $respuesta['object']->getDescripcion();
              /*
               * Obtengo los paquetes
               */
        $criteria = new Criteria();
        $criteria->add(PaquetePeer::PLATAFORMA_ID, $respuesta['object']->getId());

        $paquete_count = PaquetePeer::doCount($criteria);

        if($paquete_count > 0){
           //recato los paquetes
          $this->paquetes = $paquete_objetos = PaquetePeer::doSelect($criteria);
          $this->mensaje ="Exito!";


        }else{
            // no existen paquetes
            $this->paquetes = null;
            $this->mensaje ="No existe paquetes";
        }




      } catch (Exception $exc) {
        $this->mensaje ="Error!";
        $this->paquetes = null;
        $this->nombre_plataforma =null;

      }


      }

      }else{ // no existe plataforma
            $plataforma_layout = "Error";
            $plataforma_id  = null;
         }




        return $plataforma_layout;


        }else{ // si no esta autenticado
          $this->redirect('saml/login');
        }

    /*
    * fin
    */


    /*fin del layout*/

  }
  public function executeSesion(sfWebRequest $request)
  {

   $codigo_vendedor = $request->getParameter('sid');
   $cantidad = $request->getParameter('quantity');
   $demo = $request->getParameter('demo');
   $fixer = $request->getParameter('fixed');
   $idioma = $request->getParameter('lang');
   $id_producto = $request->getParameter('product_id');
   $new = new Paquete();
   
  if($codigo_vendedor != null){
     // obtengo los parametros de la sesion
  $this->getUser()->setAttribute('ses_codigo_vendedor',$codigo_vendedor);
  $this->getUser()->setAttribute('ses_cantidad_prod',$cantidad);
  $this->getUser()->setAttribute('ses_demo_compra',$demo);
  $this->getUser()->setAttribute('ses_fixer',$fixer);
  $this->getUser()->setAttribute('ses_idioma',$idioma);
  $this->getUser()->setAttribute('ses_id_producto',$id_producto);
  
  }

  $this->redirect('saml/twocheckout');


    }





}
